home *** CD-ROM | disk | FTP | other *** search
/ Light ROM 1 / LIGHT-ROM 1 (Amiga Library Services)(1994).iso / ffdisks / d918.lha / MultiPlot / Rexx / Scripts / sortY.mpt < prev   
Text File  |  1993-10-04  |  2KB  |  107 lines

  1. /* This script sorts the data points by their X values */
  2.  
  3. port= 'MULTIPLOT.01'
  4. RESULT=''
  5. RC=0
  6.  
  7. options results
  8. if(~show('p',port)) then do
  9.   say "Please start Multiplot first."
  10.   exit 1
  11. end
  12. address value port
  13. 'QUERY'
  14. if(rc ~=0) then do
  15.   say "QUERY command failed!"
  16.   exit 1
  17. end
  18. if(compare('PLOWIN',RESULT)<6) then do
  19.   'SAY Please select a PLOT WINDOW first'
  20.   exit 1
  21. end
  22. 'PEEK 1 NOVALS'
  23. if(rc ~=0) then do
  24.   'SAY Please select a Data Set first'
  25.   exit 1
  26. end
  27.  
  28. /* Collect values from set */
  29. 'PEEK 1 YVALS'
  30. tempy=YVALS
  31. 'PEEK 1 XVALS'
  32. tempx=XVALS
  33. 'PEEK 1 EVALS'
  34. tempe=EVALS
  35. 'PEEK 1 EDWN'
  36. tempedwn=EDWN
  37. 'PEEK 1 XEVALS'
  38. tempxe=XEVALS
  39. 'PEEK 1 XEDWN'
  40. tempxedwn=XEDWN
  41.  
  42. n=words(tempx)
  43.  
  44. XVALS=word(tempx,1)
  45. YVALS=word(tempy,1)
  46. EVALS=word(tempe,1)
  47. EDWN =word(tempedwn,1)
  48. XEVALS=word(tempxe,1)
  49. XEDWN =word(tempxedwn,1)
  50.  
  51. do i=2 to n
  52.   testval=word(tempy,i)
  53.   xval=word(tempx,i)
  54.   eval =word(tempe,i)
  55.   edwnval =word(tempedwn,i)
  56.   xeval=word(tempxe,i)
  57.   xedwnval =word(tempxedwn,i)
  58.  
  59.   do j=1 to i-1
  60.     if(testval<word(YVALS,j)) then do
  61.  
  62.       testval=insert(testval,' ')
  63.       xval=insert(xval,' ')
  64.       eval=insert(eval,' ')
  65.       edwnval=insert(edwnval,' ')
  66.       xeval=insert(xeval,' ')
  67.       xedwnval=insert(xedwnval,' ')
  68.  
  69.       YVALS=insert( testval,YVALS,(wordindex(YVALS,j)-1))
  70.       XVALS=insert( xval,XVALS,(wordindex(XVALS,j)-1))
  71.       EVALS=insert( eval,EVALS,(wordindex(EVALS,j)-1))
  72.       EDWN=insert( edwnval,EDWN,(wordindex(EDWN,j)-1))
  73.       XEVALS=insert( xeval,XEVALS,(wordindex(XEVALS,j)-1))
  74.       XEDWN=insert( xedwnval,XEDWN,(wordindex(XEDWN,j)-1))
  75.  
  76.       j=i
  77.       testval=''
  78.     end
  79.   end
  80.   if(length(testval)>0) then do
  81.     testval=insert(' ',testval)
  82.     yval=insert(' ',yval)
  83.     eval=insert(' ',eval)
  84.     edwnval=insert(' ',edwnval)
  85.     xeval=insert(' ',xeval)
  86.     xedwnval=insert(' ',xedwnval)
  87.  
  88.     YVALS=insert( YVALS,testval)
  89.     XVALS=insert( XVALS,xval)
  90.     EVALS=insert( EVALS,eval)
  91.     EDWN=insert(  EDWN,edwnval)
  92.     XEVALS=insert(XEVALS,xeval)
  93.     XEDWN=insert(XEDWN,xedwnval)
  94.   end
  95. end
  96.  
  97. /* Replace values in set */
  98. 'POKE 1 XVALS'
  99. 'POKE 1 YVALS'
  100. 'POKE 1 EVALS'
  101. 'POKE 1 EDWN'
  102. 'POKE 1 XEVALS'
  103. 'POKE 1 XEDWN'
  104.  
  105. 'FULLPLOT'
  106.  
  107.